    package com.study_security.service;

    import com.baomidou.mybatisplus.extension.service.IService;
    import com.study_security.domain.ResponseResult;
    import com.study_security.dto.MemberDTO;
    import com.study_security.dto.ProjectDTO;
    import com.study_security.dto.TaskAiDTO;
    import com.study_security.dto.TaskDTO;
    import com.study_security.entity.Task;
    import org.apache.ibatis.annotations.Param;

    import java.util.List;

    public interface TaskService extends IService<Task> {
        /**
         * 根据项目名查找项目下的所有任务
         *
         * @param projectName 项目名
         * @return 项目下的所有任务
         */
        List<TaskDTO> getTasksByProjectName(String projectName);
        List<TaskDTO> getTasksByProjectId(Long projectId);
        List<ProjectDTO> selectUserProjects( Long userId);

        Task getTaskById(Long taskId);

         boolean addTask(Task task);

        boolean updateTaskStatus(Long taskId);

        List<MemberDTO> getProjectMembers(Long projectId);

        boolean deleteTask(Long taskId);
        boolean taskIdUserIdExisits(Long taskId,Long userId);

        boolean updateTask(Task task);

        // boolean taskIdUserIdExists(Long taskId, Long userId);

        /**
         * 通知当前用户负责的所有项目中的任务成员
         *
         * @param userId 当前用户的ID
         * @return 通知结果
         */
        ResponseResult notifyProjectMembers(Long userId);


        /**
         * 根据成员ID获取所有任务
         *
         * @param memberId 成员ID
         * @return 任务列表
         */
        List<TaskDTO> getTasksByMemberId(Long memberId);

        /**
         * 根据任务名称和成员ID获取任务详细信息
         *
         * @param taskName 任务名称
         * @param memberId 成员ID
         * @return 任务详细信息列表
         */
        List<TaskAiDTO> getTaskDetailsByTaskName(String taskName, Long memberId);

    }
